package com.real8.romemp.client;

import com.google.gwt.place.shared.PlaceController;
import com.google.web.bindery.event.shared.EventBus;
import com.google.web.bindery.event.shared.SimpleEventBus;
import com.real8.romemp.client.ui.EndTurnView;
import com.real8.romemp.client.ui.EndTurnViewImpl;
import com.real8.romemp.client.ui.FeedView;
import com.real8.romemp.client.ui.FeedViewImpl;
import com.real8.romemp.client.ui.GameStartView;
import com.real8.romemp.client.ui.GameStartViewImpl;
import com.real8.romemp.client.ui.GoodbyeView;
import com.real8.romemp.client.ui.GoodbyeViewImpl;
import com.real8.romemp.client.ui.HireAuxiliaView;
import com.real8.romemp.client.ui.HireAuxiliaViewImpl;
import com.real8.romemp.client.ui.LabourAllocationView;
import com.real8.romemp.client.ui.LabourAllocationViewImpl;
import com.real8.romemp.client.ui.PiracyView;
import com.real8.romemp.client.ui.PiracyViewImpl;
import com.real8.romemp.client.ui.PoliticalView;
import com.real8.romemp.client.ui.PoliticalViewImpl;
import com.real8.romemp.client.ui.ShipBuildingView;
import com.real8.romemp.client.ui.ShipBuildingViewImpl;
import com.real8.romemp.client.ui.TradeAllocationView;
import com.real8.romemp.client.ui.TradeAllocationViewImpl;
import com.real8.romemp.client.ui.TradeView;
import com.real8.romemp.client.ui.TradeViewImpl;
import com.real8.romemp.client.ui.WarView;
import com.real8.romemp.client.ui.WarViewImpl;
import com.real8.romemp.shared.GameData;
import com.real8.romemp.shared.GameDataImpl;

public class ClientFactoryImpl implements ClientFactory {
	private static final EventBus eventBus = new SimpleEventBus();
	private static final PlaceController placeController = new PlaceController(
			eventBus);
	private static final GameData gameData = new GameDataImpl();

	private static final GoodbyeView goodbyeView = new GoodbyeViewImpl();

	private static final GameStartView gameStartView = new GameStartViewImpl();
	private static final LabourAllocationView labourAllocationView = new LabourAllocationViewImpl();
	private static final HireAuxiliaView hireAuxiliaView = new HireAuxiliaViewImpl();
	private static final ShipBuildingView shipBuildingView = new ShipBuildingViewImpl();
	private static final TradeAllocationView tradeAllocationView = new TradeAllocationViewImpl();
	private static final WarView warView = new WarViewImpl();
	private static final PiracyView piracyView = new PiracyViewImpl();
	private static final TradeView tradeView = new TradeViewImpl();
	private static final FeedView feedView = new FeedViewImpl();
	private static final PoliticalView politicalView = new PoliticalViewImpl();
	private static final EndTurnView endTurnView = new EndTurnViewImpl();

	@Override
	public EventBus getEventBus() {
		return eventBus;
	}

	@Override
	public PlaceController getPlaceController() {
		return placeController;
	}

	@Override
	public GameData getGameData() {
		return gameData;
	}

	@Override
	public GoodbyeView getGoodbyeView() {
		return goodbyeView;
	}

	@Override
	public GameStartView getGameStartView() {
		return gameStartView;
	}

	@Override
	public LabourAllocationView getLabourAllocationView() {
		return labourAllocationView;
	}

	@Override
	public HireAuxiliaView getHireAuxiliaView() {
		return hireAuxiliaView;
	}

	@Override
	public ShipBuildingView getShipBuildingView() {
		return shipBuildingView;
	}

	@Override
	public TradeAllocationView getTradeAllocationView() {
		return tradeAllocationView;
	}

	@Override
	public WarView getWarView() {
		return warView;
	}

	@Override
	public PiracyView getPiracyView() {
		return piracyView;
	}

	@Override
	public TradeView getTradeView() {
		return tradeView;
	}

	@Override
	public FeedView getFeedView() {
		return feedView;
	}

	@Override
	public PoliticalView getPoliticalView() {
		return politicalView;
	}

	@Override
	public EndTurnView getEndTurnView() {
		return endTurnView;
	}
}
